/*
 * Copyright 2008-2009 Aying.Net with Fuchun. 
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package net.aying.html;

import java.io.Serializable;


/**
 * 该 <code>HtmlEmbedElement</code> 类用于描述 <code>HTML</code> 中的
 * <code>embed</code> 元素。
 * <p>
 * 可以构建该类的对象创建 <code>embed</code>。
 * </p>
 * 
 * @author Fuchun
 * @version 1.0, 2009-6-5
 */
public class HtmlEmbedElement implements Serializable {

    /** 生成的串行化版本标识。 */
    private static final long serialVersionUID = 241676193806833854L;

    /** 默认的Embed标签名称。 */
    private static final String DEFAULT_TAG_NAME = "embed";

    /* Id属性。 */
    private String id;

    /* 对象的名称。 */
    private String name;

    /* 源文件地址。 */
    private String src;

    /* 对象的宽度。 */
    private Integer width;

    /* 对象的高度。 */
    private Integer height;

    /* 嵌入内容的MIME类型。 */
    private String type;

    /* Window 对象的classid值。 */
    private String classid;

    /* 是否自动播放。 */
    private boolean autoStart = Boolean.FALSE;

    /* 循环播放的次数。 */
    private Integer loop = 0;

    /* 音量的大小。 */
    private Integer volume = 100;

    /* 对象的对齐方式。 */
    private String align;

    /* 脚本执行权限。 */
    private String allowScriptAccess;

    /* 对象的透明属性。 */
    private String wmode;

    /* 控制面板样式。 */
    private String controls;

    /**
     * 返回 Id属性。
     * 
     * @return Id属性。
     */
    public String getId() {
        return id;
    }

    /**
     * 设置 Id属性。
     * 
     * @param id 要设置的 Id属性。
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 返回 对象的名称。
     * 
     * @return name。
     */
    public String getName() {
        return name;
    }

    /**
     * 设置 对象的名称。
     * 
     * @param name 要设置的 对象的名称。
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 返回 源文件地址。
     * 
     * @return 源文件地址。
     */
    public String getSrc() {
        return src;
    }

    /**
     * 设置 源文件地址。
     * 
     * @param src 要设置的 源文件地址。
     */
    public void setSrc(String src) {
        this.src = src;
    }

    /**
     * 返回 对象的宽度。
     * 
     * @return 对象的宽度。
     */
    public Integer getWidth() {
        return width;
    }

    /**
     * 设置 对象的宽度。
     * 
     * @param width 要设置的 对象的宽度。
     */
    public void setWidth(Integer width) {
        this.width = width;
    }

    /**
     * 返回 对象的高度。
     * 
     * @return 对象的高度。
     */
    public Integer getHeight() {
        return height;
    }

    /**
     * 设置 对象的高度。
     * 
     * @param height 要设置的 对象的高度。
     */
    public void setHeight(Integer height) {
        this.height = height;
    }

    /**
     * 返回 嵌入内容的MIME类型。
     * 
     * @return 嵌入内容的MIME类型。
     */
    public String getType() {
        return type;
    }

    /**
     * 设置 嵌入内容的MIME类型。
     * 
     * @param type 要设置的 嵌入内容的MIME类型。
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * 返回 对象的classid值。
     * 
     * @return 对象的classid值。
     */
    public String getClassid() {
        return classid;
    }

    /**
     * 设置 对象的classid值。
     * 
     * @param classid 要设置的 对象的classid值。
     */
    public void setClassid(String classid) {
        this.classid = classid;
    }

    /**
     * 测试是否自动播放。
     * 
     * @return 若自动播放，则为 <code>true</code>，否则为 <code>false</code>。
     */
    public boolean isAutoStart() {
        return autoStart;
    }

    /**
     * 设置 是否自动播放。
     * 
     * @param autoStart 要设置的 是否自动播放。
     */
    public void setAutoStart(boolean autoStart) {
        this.autoStart = autoStart;
    }

    /**
     * 返回 循环播放的次数。
     * 
     * @return 循环播放的次数。
     */
    public Integer getLoop() {
        return loop;
    }

    /**
     * 设置 循环播放的次数。
     * 
     * @param loop 要设置的 循环播放的次数。
     */
    public void setLoop(Integer loop) {
        this.loop = loop;
    }

    /**
     * 返回 音量的大小。
     * 
     * @return 音量的大小。
     */
    public Integer getVolume() {
        return volume;
    }

    /**
     * 设置 音量的大小。
     * 
     * @param volume 要设置的 音量的大小。
     */
    public void setVolume(Integer volume) {
        this.volume = volume;
    }

    /**
     * 返回 对齐方式。
     * 
     * @return 对齐方式。
     */
    public String getAlign() {
        return align;
    }

    /**
     * 设置 对齐方式。
     * 
     * @param align 要设置的 对齐方式。
     */
    public void setAlign(String align) {
        this.align = align;
    }

    /**
     * 返回 脚本执行权限。
     * 
     * @return 脚本执行权限。
     */
    public String getAllowScriptAccess() {
        return allowScriptAccess;
    }

    /**
     * 设置 脚本执行权限。
     * 
     * @param allowScriptAccess 要设置的 脚本执行权限。
     */
    public void setAllowScriptAccess(String allowScriptAccess) {
        this.allowScriptAccess = allowScriptAccess;
    }

    /**
     * 返回 透明属性。
     * 
     * @return 透明属性。
     */
    public String getWmode() {
        return wmode;
    }

    /**
     * 设置 透明属性。
     * 
     * @param wmode 要设置的 透明属性。
     */
    public void setWmode(String wmode) {
        this.wmode = wmode;
    }

    /**
     * 返回 控制面板样式。
     * 
     * @return 控制面板样式。
     */
    public String getControls() {
        return controls;
    }

    /**
     * 设置 控制面板样式。
     * 
     * @param controls 要设置的 控制面板样式。
     */
    public void setControls(String controls) {
        this.controls = controls;
    }

    /**
     * @see java.lang.Object#toString()
     */
    public String toString() {
        StringBuffer buffer = new StringBuffer();
        buffer.append(HtmlConstants.TAG_START).append(DEFAULT_TAG_NAME);
        if (id != null && !"".equals(id)) buffer.append("id=\"").append(id).append("\" ");
        if (name != null && !"".equals(name)) buffer.append("name=\"").append(name).append("\" ");
        buffer.append(HtmlConstants.TAG_END).append(HtmlConstants.TAG_END_START);
        buffer.append(DEFAULT_TAG_NAME).append(HtmlConstants.TAG_END);
        return buffer.toString();
    }

    public static void main(String[] args) {
        System.out.println((new HtmlEmbedElement()).toString());
    }
}
